Electronic mail (hereinafter "e-mail") has become a common mode of communication among computer users. E-mail programs allow an e-mail program user (hereinafter the "author") to send an electronic mail message (hereinafter a "message") to another e-mail program user (hereinafter the "recipient") or group of users electronically over a variety of computer networks. Typically, a message includes a body and header information, such as an author-provided subject heading and the date the message was sent. A common arrangement is for each e-mail program user (who may be both an author and a recipient) to access a networked computer system running an e-mail program that allows messages to be sent, retrieved and read.
It is now common for e-mail programs to run within a graphical user interface (GUI) environment employing a windowing environment. A graphical user interface provides a graphical icon-oriented and/or menu driven environment for the user to interact with the e-mail program. The windowing environment presents the user with specially delineated areas of the screen called windows, each of which is dedicated to a particular application program, message, file, or document. Each window can act independently, as if it were a virtual display device under control of its particular application program. The windows can typically be resized, moved around the display, and stacked so as to overlay another. In some windowing environments, windows can be minimized to an icon or increased to a full-screen display. Usually, the windows have a top to bottom order in which they are displayed, with top windows at a particular location on the screen overlaying any other window at that same location. The top-most window has the "focus" and accepts the user's input. The user can switch other windows to the top by clicking with a mouse or other pointer device, or by inputting certain key combinations. This allows the user to work with multiple application programs, messages, files and documents in a similar manner as physically working with multiple paper documents and items which can be arbitrarily stacked or arranged on an actual desk.
The display area within a window is commonly divided into specially delineated areas called panes. A pane may be used to group related items or display other information. Typically, a user can select an item within one pane to control the display contents of another pane.
An e-mail program commonly presents the user with a window with at least two panes: a folder pane and a folder contents pane. Typically, the messages sent or received by the e-mail program are grouped into folders, the names of which are displayed in the folder pane. New messages are ordinarily placed by the e-mail program into a particular folder named the "in box" folder. E-mail programs commonly allow the user to create other folders, such as "pending" or "archive," into which messages may be placed. The user can select (e.g., by clicking on a folder with a pointing device such as a mouse) a folder in the folder pane. In a separate folder contents pane, the e-mail program presents a list of the messages contained in the currently selected folder. Typically, the message list is in the form of a table in which each message is identified by its header information. Message headers generally consist of attribute fields that contain identifying information of the message, such as a "from" field which contains the author's name, a "date sent" field, a "subject" field which contains an author provided subject description, and/or other fields. The header information in the folder contents information pane helps an e-mail program user find a particular message, decide whether to read the body of a message, or otherwise handle a message. For instance, a user may wish to reread an important message that was read days ago; a busy recipient who receives many new messages may wish to select which of many new messages to read; or a user may wish to place messages relating to a particular topic into a separate folder other than the in box folder.
In order to provide further information about a message to the user, some e-mail programs provide the user with a third pane called a preview pane. When the user selects a particular message in the folder contents pane, the preview pane automatically displays a portion of the message's body. In this way, the user is provided with an additional mechanism for determining how to handle the message.
To help a user handle new messages, an e-mail program typically automatically selects a message by default for display in the preview pane upon starting up or when the message is received. Typically, the default selected message is the most recently received message. In this way, new messages can be handled more efficiently by the user.
However, previewing certain messages in the preview pane may cause problems. A message that contains disruptive message content may result in a system disruption when it is previewed. For instance, a very large message may "freeze" or "crash" the computer system when the e-mail program attempts to preview it. In addition, some messages may comprise certain content processed by a message content processor when it is read or previewed. A programming error in the message content processor software may cause the system to crash when it processes certain messages. Also, there are many different ways that the message itself may contain instructions that disrupt the computer system. For example, a message may include executable instructions which tamper with the computer's operating system or access an invalid or impermissible portion of the computer system's memory. In such a case, processing the message may lead to unreliable operation or a crash of the operating system or the e-mail program. Another example is a message containing instructions that form what is commonly known as an infinite loop (i.e., a set of computer instructions that repeat without end). If a message contains such a set of statements, the message content processor software will never finish processing it. Thus, the message content processor software must be forced to terminate, leading to a computer system disruption. Also, executable instructions in a message may perform a task that consumes an excessive amount of time or system resources, effectively preventing the computer system from responding to the user.
Examples of content processed by a message content processor include audio, image, animation, or video presentations, text translated into a rendered form, instructions interpreted according to a script language, a programming object, or directly executable instructions. The message content processor can also process combinations or variations of the above, such as an encrypted message with a programming object or partially-compiled instructions.
Specifically, a message may include text to be rendered according to the HyperText Markup Language (HTML) specification, interpretable instructions according to the scripting language of Microsoft Visual Basic Script marketed by Microsoft Corporation of Redmond, Washington, a programming object (or text that is to be converted into a programming object) conforming to the ActiveX Controls specification of Microsoft Corporation, or executable machine language instructions (or text that is to be converted into executable machine language instructions). Such content is typically processed before being presented to the user, and, in some cases, processing involves executing instructions found in the message. When a message with such content is previewed in the preview pane, some or all of the message may be processed by the message content processor in order to accurately depict how the message will appear when read in the message window. Thus, certain messages with disruptive message content will lead to a system disruption when they are previewed in the preview pane.
A dilemma arises if a message with disruptive message content is received by an e-mail program that automatically previews selected messages. Typically, a message is deleted by selecting the header information in the folder contents pane relating to the message and issuing a delete command. However, if the header information relating to a message with disruptive message content is selected, the message is automatically previewed in the preview pane and a system disruption occurs. As a result, the system disruption prevents the user from issuing the delete command to delete the message. This problem is referred to herein as the undeleteability problem. Some e-mail programs offer an option to disable the preview pane, providing a way to avoid system disruptions caused by previewing messages with disruptive message content. However, the user may not recognize the pane should be disabled because the user may not know the system disruption was caused by previewing the message. Also, the user may not be familiar with the option to disable the preview pane. As a result, the user may still be effectively unable to delete the message with disruptive message content.
As discussed above, an e-mail program may automatically select and preview a newly received message. A particularly troubling dilemma can result if the newly received message contains disruptive message content. When the message is automatically selected for presentation in the preview pane, the computer system is disrupted. Thus, the user is prevented from selecting a different message or choosing any options. Each time the e-mail program is restarted, the message is again automatically selected and processed, and another system disruption occurs. Thus, the user is repeatedly prevented from avoiding the message with disruptive message content. As a result, the user cannot use the e-mail program and is prevented from reading any messages. This problem is referred to herein as the inescapable disruption problem. Some e-mail programs offer an option to read a message without interpreting its content, and, as discussed above, some e-mail programs offer an option to disable the preview pane. Neither of these options solves the inescapable disruption problem because the user cannot select the options due to the recurring system disruptions.
These two problems are further exacerbated by the fact that messages may originate from any author on the network, and the e-mail program user typically does not exercise complete control over which authors can send a message. This situation arises particularly with Internet e-mail. The Internet is a world-wide network of cooperating computer networks with millions of potential e-mail authors. If the e-mail program can receive messages from the Internet, any one of these millions of authors could intentionally send a message with disruptive message content to the user's computer system. Such a message is sometimes called a "mail bomb."
Various mechanisms exist to deal with system disruptions that occur in non e-mail programs and contexts. Some operating systems and applications software address the problem of system disruptions by running special software routines after a system disruption is detected. Such software routines attempt to stabilize the system, rebuild a faulty file system, or retrieve a backup copy of a document. For instance, when the Microsoft Windows NT operating system starts up, it determines if it was shut down properly. If the operating system was not shut down properly, it presents the user with an option to restart the operating system in a different configuration, such as one known to avoid system disruptions. In addition, some operating systems run a special routine to rebuild the file system when a system disruption is detected. Also, some word processors save a backup copy of an open document at timed intervals. Upon startup, if the word processor determines that it was not shut down properly or the document was not properly closed, the word processor presents the user with an option to retrieve the most recent backup copy of the document.
However, these attempts to avoid system disruption problems do not address the undeleteability or inescapable disruption problems that may occur in the e-mail preview context. Even if the operating system starts up with a stable configuration, the file system is rebuilt, or a backup copy of a document is retrieved, the preview pane of the e-mail program will again automatically preview a message with disruptive message content when it is selected, preventing it from being deleted. If a newly received message contains disruptive message content, it will still be automatically selected, and the system will be disrupted. Thus, effective solutions to these problems have yet to be implemented.
The invention solves these problems relating to previewing a message with disruptive message content by providing methods and apparatus for controlling the preview pane of a message reading program, such as an e-mail program.
In one embodiment, a message identifier relating to a message about to be previewed is written to a nonvolatile storage location. Upon successful preview of the message, the message identifier is deleted from the storage location. Before a particular message is previewed in the preview pane, the e-mail program checks the nonvolatile storage location for the message's message identifier. If the message identifier is present, the message possibly contains disruptive message content, and the user is presented with a warning dialog box. From the dialog box, the user can choose to not preview the message. In addition, the header information in the folder contents pane relating to any message in the nonvolatile storage location is annotated to indicate that it may contain disruptive message content.
In another embodiment of the invention, each time the e-mail program starts, it checks a nonvolatile storage location for a preview enable identifier. If the preview enable identifier is not present, the email program sets a preview enable setting accordingly, displays a warning to the user, and previews no messages. If the preview enable identifier is present, the e-mail program sets the preview enable setting accordingly, deletes the preview enable identifier from the nonvolatile storage location, and automatically previews messages. Then, during the shutdown process of the e-mail program, the preview enable setting is checked to determine whether to write the preview enable identifier to the nonvolatile storage location. In this way, if a message with disruptive message content prevents the e-mail program from shutting down, no messages are previewed.
The embodiments may be used separately or combined in one e-mail program to provide two different ways of controlling the preview pane. The advantage provided by the invention is that the functionality of an automatic preview pane is available to the user, but the preview pane is controlled in such a way as to avoid previewing messages with disruptive message content. Thus, the user can continue to operate the e-mail program after receiving a message with disruptive message content. Accordingly, the user can delete the message or view it without processing its processable content. In this way, the undeleteability and inescapable disruption problems are avoided.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrated embodiments which proceeds with reference to the accompanying drawings.